// StructSnapshotDlg.h : header file
//

#if !defined(AFX_STRUCTSNAPSHOTDLG_H__A820B634_8815_4DB2_8C89_0030EEE7CCC7__INCLUDED_)
#define AFX_STRUCTSNAPSHOTDLG_H__A820B634_8815_4DB2_8C89_0030EEE7CCC7__INCLUDED_

#include "TreeManager.h"
#include "ftManager.h"
#include "afxcmn.h"

#include "OnionChart.h"
#include "afxwin.h"

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CStructSnapshotDlg dialog

class CStructSnapshotDlg : public CDialog
{

// Construction
public:
	CStructSnapshotDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CStructSnapshotDlg)
	enum { IDD = IDD_STRUCTSNAPSHOT_DIALOG };
	CString	m_csSnapPath;
	CString	m_csPath;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CStructSnapshotDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CStructSnapshotDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBtnStart();
	//}}AFX_MSG
	afx_msg LRESULT OnUpdateSize(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnUpdatePath(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()

public:
	enum SIZETYPE
	{
		ST_AUTO,
		ST_BYTE,
		ST_KB,
		ST_MB,
		ST_GB,
		ST_TB
	};
	CString m_csCurPath;
	ftManager m_treeManager;
//	CTreeManager m_treeManager;
	CString TranslateSizeToStr(DWORD, DWORD, int nSizeType = ST_BYTE);
	CTreeCtrl m_ctrTree;
	COnionChart m_ctrOnionChart;
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	afx_msg BOOL OnQueryEndSession();
	afx_msg void OnEndSession(BOOL bEnding);
	afx_msg void OnBnClickedOk();

	CEdit m_ctrEdit;
	CString m_editPath;
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

UINT TraversePath(LPVOID pParam);
void TraverseCallback(DWORD, DWORD, DWORD, PVOID);

#endif // !defined(AFX_STRUCTSNAPSHOTDLG_H__A820B634_8815_4DB2_8C89_0030EEE7CCC7__INCLUDED_)
